<?php

class Empresas_model extends CI_Model
{

    private $table = "empresas";

    function __construct()
    {
        parent::__construct();
        $this->load->library("funciones_basicas");
    }

    function insert($row = array())
    {
        $this->db->insert($this->table, $row);
        return $this->db->insert_id();
    }

    function update($id, $row = array())
    {
        $this->db->where("id", $id);
        $this->db->update($this->table, $row);
    }

    function find($id)
    {
        $this->db->where('id', $id);
        $rows = $this->db->get($this->table);
        return $rows;
    }
    
    
    function find_empresa ($empresa)
    {
        $query=sprintf("select * from empresas where empresa='%s'",$this->db->escape_str($empresa));    
        return $this->db->query($query);
    }
    
    function find_empresa_join_rubro($empresa)
    {
        $query=sprintf("select empresas.id as id, empresa, empresa_url, direccion, descripcion,etiquetas, url, rubros_nombres.nombre, hs_atencion, correo, web, longitud, latitud, puntaje from empresas inner join rubros on empresas.id=rubros.empresa_id inner join rubros_nombres on rubros_nombres.rubros_url=rubros.url where empresa_url='%s'",$this->db->escape_str($empresa));
        return $this->db->query($query);
    }
    
    function find_empresa_join_rubro_limit($empresa,$var1,$var2)
    {
        $query=sprintf("select empresas.id as id, empresa, empresa_url, direccion, descripcion,etiquetas, nombre, nombre_url, hs_atencion, correo, web  from empresas inner join rubros on empresas.rubro_id=rubros.id where empresa_url='%s' limit %s,%s ",$this->db->escape_str($empresa),$var1,$var2);
        return $this->db->query($query);
    }
    
    function find_ajax($campo,$valor)
    {
        if($valor!=""){
            if($campo=="empresa")
            $query =sprintf("select count(id) as count from empresas where empresa='%s'",$this->db->escape_str($valor));
            elseif($campo=="direccion")
            $query = sprintf("select count(id) as count from empresas where direccion='%s'",$this->db->escape_str($valor));
            elseif($campo=="str_fijos")
            $query = sprintf("select count(*) as count from telefonos where numero='%s' and tipo=1",$this->db->escape_str($valor));
            elseif($campo=="str_celulares")
            $query = sprintf("select count(*) as count from telefonos where numero='%s' and tipo=2",$this->db->escape_str($valor));        
            $rows=$this->db->query($query);
            $rows=$rows->row();
            return $rows->count;
        }
        else
        {
            return 0;
        }
        
    }


    function delete($id)
    {
        $this->db->where('id', $id);
        $this->db->delete($this->table);
    }

    function count()
    {
        return $this->db->count_all($this->table);
    }

    function list_all_limit($start, $end)
    {
        $query="select empresas.id as id, empresa,direccion,rubros.url as rubro_id,fecha_ingreso,fecha_actualizacion from empresas inner join rubros on empresas.id=rubros.empresa_id order by id desc limit ".$start.",".$end."";
        $rows = $this->db->query($query);
        return $rows;
        
        $this->db->select('*');
        $this->db->limit($end, $start);
        $this->db->order_by('id', 'desc');
        return $this->db->get($this->table);
    }
    
    function find_empresa_rubro_id($rubro_id)
    {
        $this->db->select('id as empresa_id');
        $this->db->where('rubro_id', $rubro_id);
        $rows = $this->db->get($this->table);
        $rows = $rows->result_array();
        return $rows;
    }
    
    function find_where_in($valor_con_comas)
    {
        $query=sprintf("select empresa,empresa_url,etiquetas,id from empresas where id in (%s)",$this->db->escape_str($valor_con_comas));
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }
    

    
    function find_empresas_rubro_name_limit($nombre,$limit1,$limit2)
    {
        $query=sprintf("select rubros.url as get_url, rubros_nombres.nombre, empresas.id as id, empresa, empresa_url, etiquetas from empresas inner join rubros on empresas.id=rubros.empresa_id inner join rubros_nombres on rubros_nombres.rubros_url=rubros.url where rubros.url='%s' limit ".$limit1.",".$limit2,$this->db->escape_str($nombre));
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }
    
     function find_empresas_rubro_name_count($nombre)
    {
        $query=sprintf("select count(empresas.id) as count from empresas inner join rubros on empresas.id=rubros.empresa_id where rubros.url='%s'",$this->db->escape_str($nombre));
        $rows = $this->db->query($query);
        $rows = $rows->row();
        return $rows->count;
    }
    

    
    function find_empresas_etiqueta_name_limit($nombre,$limit1,$limit2)
    {
        $query=sprintf("select  rubros.url, empresas.id as id, empresa, empresa_url, etiquetas from empresas inner join rubros on empresas.id=rubros.empresa_id inner join etiquetas on etiquetas.empresa_id=empresas.id where etiquetas.nombre='%s' limit ".$limit1.",".$limit2,$this->db->escape_str($nombre));
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }
    
    function find_empresas_etiqueta_name_count($nombre)
    {
        $query=sprintf("select count(empresas.id) as count from empresas inner join rubros on empresas.id=rubros.empresa_id inner join etiquetas on etiquetas.empresa_id=empresas.id where etiquetas.nombre='%s'",$nombre);
        $rows = $this->db->query($query);
        $rows = $rows->row();
        return $rows->count;
    }
    
    function find_empresas_search_name_limit($nombre,$limit1,$limit2)
    {
        $query="select distinct rubros_nombres.nombre, empresas.id as id, empresa, empresa_url, etiquetas from empresas inner join etiquetas on empresas.id=etiquetas.empresa_id inner join rubros on empresas.id=rubros.empresa_id inner join rubros_nombres on rubros_nombres.rubros_url=rubros.url where empresa  like '%".$this->db->escape_str($nombre)."%' or etiquetas.nombre like '%".$this->db->escape_str($nombre)."%' limit ".$limit1.",".$limit2;
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }
    
    function find_empresas_search_name_count($nombre)
    {
        $query="select count(distinct empresas.id) as count from empresas inner join etiquetas on empresas.id=etiquetas.empresa_id inner join rubros on rubros.id=empresas.rubro_id where empresa  like '%".$this->db->escape_str($nombre)."%' or etiquetas.nombre like '%".$this->db->escape_str($nombre)."%'";
        $rows = $this->db->query($query);
        $rows = $rows->row();
        return $rows->count;
    }
    
    
    function empresa_footer_list()
    {
        $query="select empresa, empresa_url from empresas order by id";
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }

    
    function xml_empresas()
    {
        $query="select empresa_url,fecha_actualizacion from empresas order by empresa";
        $rows = $this->db->query($query);
        $rows = $rows->result_array();
        return $rows;
    }
    
}

?>